//package com.zwr.normal.forkjoin;
//
//import java.util.concurrent.RecursiveTask;
//
//public class AddTask3 extends RecursiveTask<Integer> {
//
//    int begin;
//    int end;
//
//    public AddTask3(int begin, int end) {
//        this.begin = begin;
//        this.end = end;
//    }
//
//    @Override
//    public String toString() {
//        return "{" + begin + "," + end + '}';
//    }
//
//    @Override
//    protected Integer compute() {
//        // 5, 5
//        if (begin == end) {
//           System.out.println("join() {}", begin);
//            return begin;
//        }
//        // 4, 5
//        if (end - begin == 1) {
//           System.out.println("join() {} + {} = {}"+ begin , end, end + begin);
//            return end + begin;
//        }
//
//        // 1 5
//        int mid = (end + begin) / 2; // 3
//        AddTask3 t1 = new AddTask3(begin, mid); // 1,3
//        t1.fork();
//        AddTask3 t2 = new AddTask3(mid + 1, end); // 4,5
//        t2.fork();
//       System.out.println("fork() {} + {} = ?", t1, t2);
//        int result = t1.join() + t2.join();
//       System.out.println("join() {} + {} = {}", t1, t2, result);
//        return result;
//    }
//}
